// 错误处理中间件
function errorHandler(err, req, res, next) {
  console.error('Error:', err);
  
  // 处理Sequelize错误
  if (err.name === 'SequelizeValidationError') {
    const messages = err.errors.map(error => error.message);
    return res.status(400).json({
      error: 'Validation Error',
      details: messages
    });
  }
  
  if (err.name === 'SequelizeUniqueConstraintError') {
    return res.status(409).json({
      error: 'Conflict Error',
      message: '资源已存在'
    });
  }
  
  // 处理404错误
  if (err.status === 404) {
    return res.status(404).json({
      error: 'Not Found',
      message: err.message || '请求的资源不存在'
    });
  }
  
  // 处理400错误
  if (err.status === 400) {
    return res.status(400).json({
      error: 'Bad Request',
      message: err.message || '请求参数无效'
    });
  }
  
  // 处理401错误
  if (err.status === 401) {
    return res.status(401).json({
      error: 'Unauthorized',
      message: err.message || '未授权访问'
    });
  }
  
  // 处理500错误
  return res.status(500).json({
    error: 'Internal Server Error',
    message: err.message || '服务器内部错误'
  });
}

module.exports = errorHandler;